/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package interfaz;

import compumundohipermegared.Foto;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import seguridad.ManejadorCertificados;

/**
 *
 * @author Arkan
 */
public class DialogoVerFoto extends JDialog implements ActionListener
{
    private final static String CERRAR = "Cerrar";
    
    private InterfazFotosP2P principal;
    
    private JLabel labFoto;
    
    private JLabel labID;
    
    private JLabel labExt;
    
    private JLabel labAnchoImagen;
    
    private JLabel labAltoImagen;
    
    private JLabel labFechaCreada;
    
    private JLabel labFechaDescargada;
    
    private JLabel labPersonas;
    
    private JLabel labMia;
    
    private JButton butCerrar;
    
    private String ubicacionArchivoActual;
            
    private boolean acaboDeDescifrar=false;
  
    
    public DialogoVerFoto( InterfazFotosP2P ventana, Foto foto )
    {   
        ubicacionArchivoActual=foto.getUbicacionArchivo();
        if(!acaboDeDescifrar){
            ManejadorCertificados.descifrarArchivo(ubicacionArchivoActual, ventana.darContrasenaEscogida());
            acaboDeDescifrar = true;
        }
        
        principal = ventana;
            
        setTitle( "Detalles Foto" );
        setSize( 660, 700 );
        setDefaultCloseOperation( DISPOSE_ON_CLOSE );
        setResizable( false );
        setModal( false );
        setLocationRelativeTo( principal );
        setLayout( new BorderLayout( ) );
        
        ImageIcon imagen = new ImageIcon( foto.getUbicacionArchivo( )  );
        Image img = imagen.getImage( );  
        Image newimg = img.getScaledInstance( 640, 480, java.awt.Image.SCALE_SMOOTH );  
        imagen = new ImageIcon( newimg );
        labFoto = new JLabel( imagen );
        add( labFoto, BorderLayout.CENTER );
        
        JPanel aux = new JPanel( );
        aux.setBorder( new TitledBorder( "Información" ) );
        aux.setLayout( new GridLayout( 9, 1 ) );
        
        labID = new JLabel( "ID: " + foto.getId( ) );
        aux.add( labID );
        
        labExt = new JLabel( "Extensión: " + foto.getFormato( ) );
        aux.add( labExt );
        
        labAnchoImagen = new JLabel( "Ancho: " + foto.getAnchoImagen( ) );
        aux.add( labAnchoImagen );
        
        labAltoImagen = new JLabel( "Alto: " + foto.getAltoImagen( ) );
        aux.add( labAltoImagen );
                
        labPersonas = new JLabel( "Personas en la foto: " + foto.getPersonas( ) );
        aux.add( labPersonas );
        
        labFechaCreada = new JLabel( "Fecha Creación: " + foto.getTiempoGenerada( ).toString( ) );
        aux.add( labFechaCreada );
        
        if( foto.getTiempoDescargada( ) != null )
        {
            labFechaDescargada = new JLabel( "Fecha de Descarga: " + foto.getTiempoDescargada( ).toString( ) );
        }
        else
        {
            labFechaDescargada = new JLabel( "Fecha de Descarga: Ninguna" );
        }
        
        aux.add( labFechaDescargada );

        if( foto.isEsMia( ) )
        {
            labMia = new JLabel( "Es mía: Si" );
        }
        else
        {
            labMia = new JLabel( "Es mía: No" );
        }
        
        aux.add( labMia );
        
        butCerrar = new JButton( CERRAR );
        butCerrar.setActionCommand( CERRAR );
        butCerrar.addActionListener( this );
        aux.add( butCerrar );
        
        add( aux, BorderLayout.SOUTH );
    }

    @Override
    public void dispose() {
        if(acaboDeDescifrar){
            ManejadorCertificados.cifrarArchivo(ubicacionArchivoActual, principal.darContrasenaEscogida());
            acaboDeDescifrar=false;
        }
        
        super.dispose();
    }

    
    public void actionPerformed( ActionEvent e )
    {
        String comando = e.getActionCommand( );
        
        if( comando.equals( CERRAR ) )
        {
            
            dispose( );
        }
    }
}
